package com.industrial.app.service;


import com.industrial.app.domain.BizFocusSchedulingProductProduction;
import com.industrial.app.domain.request.BizFocusSchedulingProductProductionRequest;
import com.industrial.common.core.web.domain.AjaxResult;
import org.springframework.dao.DuplicateKeyException;

import java.util.List;

/**
 * 重点调度产品产量Service接口
 *
 * @author SangGuangCan
 * @date 2023-12-29
 */
public interface IBizFocusSchedulingProductProductionService
{
    /**
     * 查询重点调度产品产量
     *
     * @param baseId 重点调度产品产量主键
     * @return 重点调度产品产量
     */
    public BizFocusSchedulingProductProduction selectBizFocusSchedulingProductProductionByBaseId(String baseId);

    /**
     * 查询重点调度产品产量列表
     *
     * @param bizFocusSchedulingProductProduction 重点调度产品产量
     * @return 重点调度产品产量集合
     */
    public List<BizFocusSchedulingProductProduction> selectBizFocusSchedulingProductProductionList(BizFocusSchedulingProductProduction bizFocusSchedulingProductProduction);

    /**
     * 新增重点调度产品产量
     *
     * @param bizFocusSchedulingProductProduction 重点调度产品产量
     * @return 结果
     */
    public int insertBizFocusSchedulingProductProduction(BizFocusSchedulingProductProduction bizFocusSchedulingProductProduction) throws DuplicateKeyException;

    /**
     * 修改重点调度产品产量
     *
     * @param bizFocusSchedulingProductProduction 重点调度产品产量
     * @return 结果
     */
    public int updateBizFocusSchedulingProductProduction(BizFocusSchedulingProductProduction bizFocusSchedulingProductProduction);

    /**
     * 批量删除重点调度产品产量
     *
     * @param baseIds 需要删除的重点调度产品产量主键集合
     * @return 结果
     */
    public int deleteBizFocusSchedulingProductProductionByBaseIds(String[] baseIds);

    /**
     * 删除重点调度产品产量信息
     *
     * @param baseId 重点调度产品产量主键
     * @return 结果
     */
    public int deleteBizFocusSchedulingProductProductionByBaseId(String baseId);

    /**
     * <p>
     *     查询数据库中数据的日期(year_month字段)并进行去重复操作<br/>
     *     主要用于的是APP端左上角的日期过滤
     * </p>
     * @return
     */
    List<String> getUniqueDatesFromDatabase();

    /**
     * 获取APP表格中的数据
     * @param request
     * @return
     */
    List<BizFocusSchedulingProductProduction> getAppTableData(BizFocusSchedulingProductProductionRequest request);

    boolean transferDataInOneClick();


    List<BizFocusSchedulingProductProduction> selectChNodeByParentId(String pId);

    void clearAllTableData();

    AjaxResult importExcel(String absoluteExcelPath, String yearMonth);

    List<BizFocusSchedulingProductProduction> selectBizFocusSchedulingProductProductionListNoParams();

    
}
